//
// Sequential List
// Created by Win10 on 2022/10/16.
//

#ifndef C_DATA_STRUCTURE_SQL_LIST_H
#define C_DATA_STRUCTURE_SQL_LIST_H

//静态分配
//typedef struct {
//	int data[InitList];
//	int length;
//}SqlList;

//动态分配
typedef struct {
    int *data;
    int length;    //当前长度
    int MaxSize;//最大长度
} SqlList;

//初始化顺序表
void InitList(SqlList &L);

//增加顺序表的长度
void IncreaseSize(SqlList &L, int len);

//插入元素，在位序i的位置插入元素e
bool ListInsert(SqlList &L, int i, int e);

//删除操作，删除位序i个位置上的元素,e是删除的元素
bool ListDelete(SqlList &L, int i, int &e);

//按位查找  返回位序i的元素
int GetElem(SqlList L, int i);

//查找第一个元素值等于e的元素，并返回其位序
int LocateElem(SqlList L, int e);

//删除值位于s和t之间的数
bool Delete_s_t(SqlList &L, int s, int t);

#endif //C_DATA_STRUCTURE_SQL_LIST_H
